package org.tea.inventory.model.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.tea.inventory.base.validation.groups.UpdateGroup;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.Date;
import java.util.List;

/**
 * @author hanzy
 * @description
 * @date 2023年10月08日 10:12
 */
@ApiModel(description = "培训信息表")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TrainDto {
    @ApiModelProperty(value = "培训id")
    @NotNull(message = "培训不能为空", groups = {UpdateGroup.class})
    private Long id;

    /**
     * 类型
     */
    @ApiModelProperty(value = "类型")
    @Size(max = 10, message = "类型最大长度要小于 10")
//    @NotBlank(message = "类型不能为空")
    private String type;

    /**
     * 主题
     */
    @ApiModelProperty(value = "主题")
    @Size(max = 20, message = "主题最大长度要小于 20")
    @NotBlank(message = "主题不能为空")
    private String title;

    /**
     * 目标
     */
    @ApiModelProperty(value = "目标")
    @Size(max = 300, message = "目标最大长度要小于 300")
//    @NotBlank(message = "目标不能为空")
    private String goal;

    /**
     * 内容
     */
    @ApiModelProperty(value = "内容")
    @NotBlank(message = "内容不能为空")
    private String content;

    /**
     * 培训开始时间
     */
    @ApiModelProperty(value = "培训开始时间")
    @NotNull(message = "培训开始时间不能为null")
    private Date startTime;

    /**
     * 培训结束时间
     */
    @ApiModelProperty(value = "培训结束时间")
    @NotNull(message = "培训结束时间不能为null")
    private Date endTime;

    /**
     * 讲师
     */
    @ApiModelProperty(value = "讲师")
    @Size(max = 60, message = "讲师最大长度要小于 60")
    @NotBlank(message = "讲师不能为空")
    private String lecturer;

    /**
     * 受训人id
     */
    @ApiModelProperty(value = "受训人id")
    @NotNull(message = "受训人id不能为空")
    private List<String> traineeIds;

    /**
     * 其他事项说明
     */
    @ApiModelProperty(value = "其他事项说明")
    private String otherContent;

    /**
     * 申请人
     */
    @ApiModelProperty(value = "申请人")
    @Size(max = 60, message = "申请人最大长度要小于 60")
//    @NotBlank(message = "申请人不能为空")
    private String candidate;
    private String candidateName;


    /**
     * 培训材料
     */
    @ApiModelProperty(value = "培训材料")
    @Size(max = 255, message = "培训材料最大长度要小于 255")
    @NotBlank(message = "培训材料不能为空")
    private String materials;

    /**
     * 培训现场照片
     */
    @ApiModelProperty(value = "培训现场照片")
    @Size(max = 255, message = "培训现场照片最大长度要小于 255")
    @NotBlank(message = "培训现场照片不能为空")
    private String sitePhotos;

    /**
     * 培训签到表照片
     */
    @ApiModelProperty(value = "培训签到表照片")
    @Size(max = 255, message = "培训签到表照片最大长度要小于 255")
    @NotBlank(message = "培训签到表照片不能为空")
    private String signPhotos;

    /**
     * 培训总结
     */
    @ApiModelProperty(value = "培训总结")
    @Size(max = 300, message = "培训总结最大长度要小于 300")
//    @NotBlank(message = "培训总结不能为空")
    private String summary;


}
